Ingeniería de Requerimientos de Software

Modelos de Clases

Tema 7 · Paradigma Orientado a Objetos

TI13312 | Universidad Tecmilenio  ·  Nivel: Intermedio

→ Navega con las flechas del teclado o los botones

CONTEXTO

El Mundo como Objetos

🌎 Observa tu entorno

Te rodea un mundo de objetos que tienen características únicas y a la vez son parecidos a otros. Tu automóvil tiene un color, matrícula y detalles que lo hacen único, pero comparte características con todos los autos del mismo modelo y marca.

🧠 Pensamiento y Comunicación

El proceso de pensamiento y comunicación se basa en la abstracción de objetos. Cuando describes algo, usas palabras que evocan objetos que tu interlocutor relaciona en su mente.

💻 Software Orientado a Objetos

El desarrollo de software ha adoptado esta misma forma de ver el mundo. Este paradigma es la base de los lenguajes de programación más modernos.

🎯 En este tema aprenderás a:

Revisar los fundamentos del paradigma orientado a objetos y expresar un contexto del sistema a través de clases para documentar los requerimientos que darán solución a un problema.

OBJETIVOS

Objetivos de Aprendizaje

🎯 Al concluir este tema podrás:

Reconocer los conceptos del diseño orientado a objetos

Identificar y definir los elementos fundamentales: objeto, clase, atributos, métodos, asociaciones, agregación, composición y herencia.

Construir Diagramas de Clases UML

Aplicar el análisis gramatical para detectar clases, atributos y métodos a partir de los escenarios de casos de uso, y representarlos en notación UML.

Elaborar Tarjetas CRC

Generar el inventario de clases usando el modelo Clase-Responsabilidad-Colaborador para documentar los requerimientos del sistema.

Aclarar requerimientos con diagramas de clases

Usar los diagramas UML y tarjetas CRC como herramientas de comunicación con el cliente para validar el alcance del sistema.

7.1 FUNDAMENTOS

Objeto y Clase

Objeto

🏠 Definición

Un objeto es algo que podemos percibir de forma real o abstracta. Si piensas en una casa, se te viene a la mente una imagen con características simples: techo, ventana y puerta.

Un objeto pertenece a una clase, tiene atributos, realiza métodos y posee estados.

⚙️ Características de un Objeto
  • Pertenece a una clase
  • Tiene un conjunto de atributos
  • Realiza ciertos métodos
  • Posee estados

Clase

📦 Definición

Es un conjunto de objetos que tienen una estructura y comportamiento similares. Por ejemplo: vehículo es un concepto abstracto que nos permite movernos de un lugar a otro.

Pohl y Rupp (2011):

"Una clase es una colección lógica de atributos de datos que necesita el producto para llevar a cabo sus funciones."

🚗 Ejemplo

Vehículo es la clase.
Mi auto rojo ABC-123 es el objeto.

7.1 FUNDAMENTOS

Atributos y Métodos

Atributos

📋 Definición

Cada objeto tiene atributos que lo describen y lo hacen único. Por ejemplo, la clase Vehículo tiene atributos como color, tamaño, capacidad de carga y potencia.

🏎️ Contextual: Auto de Fórmula 1

Sus atributos pueden ser: escudería, neumáticos, material de construcción, aerodinámica… aunque hereda los atributos base de la superclase Vehículo.

💡 Clave

Los atributos dependen del contexto del sistema. No son fijos; se definen según las necesidades del negocio.

Métodos

⚡ Definición

Los métodos son las acciones que puede realizar un objeto de una clase. Por convención se incluye un paréntesis al final, ya que los métodos en POO incluyen parámetros.

🚗 Ejemplo: clase Automóvil
  • acelerar()
  • frenar()
  • girarDerecha()
  • girarIzquierda()
  • transportar(pasajeros)
⚠️ Nota

Para el diagrama de clases no es necesario dividir los métodos en acciones de mayor detalle.

7.1 FUNDAMENTOS

Asociaciones y Multiplicidad

Asociaciones

🔗 Definición

En un grupo de clases es posible establecer las relaciones que existen entre ellas a través de asociaciones. Se dibujan con una línea continua; de forma opcional se incluye una leyenda explicativa sobre la línea.

📌 Ejemplo

Cliente ─────── Factura
          "genera"

Multiplicidad

Se incluye en cada extremo de la asociación para describir cómo se relacionan las clases en cantidad:

SímboloSignificado
1Uno y sólo uno
0..1Cero o uno
n..mDesde n hasta m
*Varios (muchos)
0..*Cero o varios
1..*Uno o varios
🧾 Ejemplo de lectura

Un Cliente genera 1..* Facturas. Una Factura pertenece a 1 Cliente.

7.1 FUNDAMENTOS

Agregación, Composición y Herencia

🧩 Agregación

Un objeto puede estar formado por otros objetos. La parte puede existir de forma independiente del todo.

Automóvil ◇──── Rueda
Automóvil ◇──── Motor
Automóvil ◇──── Volante

Las ruedas pueden existir sin el auto.

💎 Composición

Es una agregación esencial. Sin el componente, el objeto no podría existir. Relación de dependencia total.

Persona ◆──── Corazón

Pedro es un objeto de la clase Persona. Sin corazón, Pedro no existiría.

Se dibuja con un rombo relleno ◆

🧬 Herencia

Una clase puede heredar atributos y métodos de una clase superior llamada superclase.

Vehículo (superclase)
   △
┌───┬────┬┴─────┐
Auto Taxi Bus Camion

Todas las subclases heredan los atributos y métodos de Vehículo.

🔑 Resumen de relaciones UML

Asociación línea continua  |  Agregación rombo vacío ◇  |  Composición rombo relleno ◆  |  Herencia flecha con triángulo △

7.2 CREACIÓN DEL MODELO

El Diagrama de Clases UML

El diagrama de clases se construye usando una caja rectangular dividida en tres compartimentos:

Sistema_Seguridad
zonaMonitoreo : String
estadoAlarma : Boolean
nivelSensor : Integer
+ activarAlarma()
+ monitorearZona(zona)
+ reportarIncidente()
+ registrarEvento()

Ejemplo: clase Sistema de Seguridad (Pressman, 2010)

Compartimentos

1️⃣ Nombre de la Clase

En la parte superior. Debe ser lo más corto y descriptivo posible. Por convención en CamelCase o con guión bajo.

2️⃣ Atributos

Listado en la parte central. Describen las características de la clase. Se indica el nombre y tipo de dato.

3️⃣ Métodos

En la parte inferior. Son las acciones que puede realizar la clase. Siempre incluyen paréntesis () al final.

💡 Nota

Algunos diagramas solo muestran el nombre de la clase, dejando atributos y métodos en blanco para mayor claridad visual.

7.2 CREACIÓN DEL MODELO

Análisis Gramatical para Detectar Clases

📖 Método de Pressman (2010)

A partir de la descripción de los escenarios de los casos de uso, se subrayan los sustantivos (posibles clases) y los verbos (posibles métodos).

Ejemplo: Estación Meteorológica

Una estación meteorológica es instalada en una zona abierta o en el techo de una casa. Contiene sensores atmosféricos que recopilan información del medio ambiente circundante cada 5 minutos. Esta información es enviada a un servidor que analiza cada parámetro y va generando un reporte que puede ser recuperado por el usuario desde una página Web.

📦 Sustantivos → Clases candidatas

EstacionMeteorologica SensorAtmosferico Servidor Reporte Usuario PaginaWeb Parametro

⚡ Verbos → Métodos candidatos

instalar() recopilar() enviar() analizar() generarReporte() recuperar()
🔄 Proceso Iterativo

El análisis es iterativo hasta definir clases + atributos + métodos para construir el diagrama completo.

7.2 CREACIÓN DEL MODELO

Taxonomía de Clases

Una vez detectados los sustantivos, se clasifican en la siguiente taxonomía para determinar qué tipo de clase representan:

🌐
Entidades externas

Cosas o sistemas ajenos que requieren información del sistema.

📦
Cosas

Entidades internas al sistema que intercambian información.

Ocurrencias o eventos

Permiten identificar acciones o cambios de estado de las cosas.

👤
Roles

Personas que realizan alguna función específica dentro del sistema.

🏢
Unidades organizacionales

Áreas o departamentos que requieren o generan información.

📍
Lugares

Espacios físicos donde se realizan actividades que generan información.

🔧
Estructuras

Herramientas o dispositivos que sirven como interfaz entre el sistema y las personas.

⚠️ No todas las clases son válidas

Deben aplicarse filtros para eliminar clases redundantes, irrelevantes, vagas o que estén fuera del alcance del sistema.

7.3 MODELO CRC

Modelo CRC: Clase – Responsabilidad – Colaborador

📖 Definición

Serie de tarjetas con información de las clases propuesta por Kent Beck y Ward Cunningham (1989) para generar un inventario de clases y facilitar la documentación de los requerimientos del sistema.

📄 Formato Físico o Virtual

Pueden ser tarjetas físicas de 4 × 6 pulgadas o tarjetas virtuales usando una plantilla. Son revisables por todo el equipo del proyecto.

🗂️ Tres secciones por tarjeta

1. Nombre de la clase
2. Responsabilidades
3. Colaboradores

🔄 Tipos de Clases CRC

Entidad: almacenadas en BD
Frontera: interfaz usuario–software
Colaborador: administra otras clases

💡 ¿Por qué usar CRC?

Mientras el diagrama de clases muestra la estructura estática, las tarjetas CRC describen el comportamiento dinámico: qué hace cada clase y con quién colabora para cumplir sus responsabilidades.

7.3 MODELO CRC

Responsabilidades y Colaboradores

Responsabilidades

📌 Definición

Establecen las acciones más relevantes que puede realizar la clase o el servicio que provee. Describen la razón de ser de la clase (lo que saben o lo que hacen).

Recomendaciones (Pressman, 2010)

  • La inteligencia del sistema debe estar distribuida entre las clases.
  • Cada responsabilidad enunciada del modo más general posible.
  • La información y el comportamiento deben residir dentro de la misma clase.
  • La información sobre una cosa debe estar en una sola clase.
  • Cuando sea apropiado, las responsabilidades deben compartirse entre clases relacionadas.
⚠️ Límite de responsabilidades

Una clase no debe tener más de 5 responsabilidades. Si se requieren más, lo mejor es dividir en dos tarjetas con clases más específicas.

Colaboradores

🤝 Definición

Describen qué tipo de objetos o clases se les puede pedir ayuda para cumplir con una responsabilidad específica.

Tipos de Clases en CRC

🗄️ Clases de Entidad

Por lo general expresan cosas que son almacenadas en una base de datos.

🖥️ Clases de Frontera

Permiten expresar una interfaz de intercambio de información entre el usuario y el software.

⚙️ Clases de Colaborador

Su objetivo principal es la administración de otras clases: crear, modificar o eliminar clases entidad o frontera.

7.3 MODELO CRC

Ejemplo CRC: Sistema de Biblioteca

Observa cómo 4 tarjetas CRC describen las clases de un sistema de biblioteca y se relacionan cuando se presta un libro:

📚 Libro
Responsabilidades
Conocer su ISBN
Conocer su título y autor
Indicar si está disponible
Registrar préstamo
Colaboradores
Catálogo
Préstamo
👤 Socio
Responsabilidades
Conocer su número de socio
Conocer sus datos personales
Solicitar préstamo
Devolver libro
Colaboradores
Préstamo
Bibliotecario
🏷️ Préstamo
Responsabilidades
Registrar fecha de préstamo
Registrar fecha de devolución
Calcular multa por retraso
Colaboradores
Libro
Socio
Bibliotecario
📋 Catálogo
Responsabilidades
Registrar nuevo libro
Buscar libro por título
Listar libros disponibles
Colaboradores
Libro
Bibliotecario
EJERCICIO PRÁCTICO

Ejercicio: Sistema de Estación Meteorológica

🌦️ Caso: Estación Meteorológica

📋 Descripción del Escenario

Una estación meteorológica instalada en una zona abierta recopila información del medio ambiente cada 5 minutos. Los datos son enviados a un servidor que analiza cada parámetro y genera un reporte que el usuario puede recuperar desde una página web.

🎯 Tarea 1: Análisis Gramatical

Subraya todos los sustantivos y verbos del escenario. Clasifica cada sustantivo según la taxonomía de clases (entidad externa, cosa, rol, lugar, etc.).

🎯 Tarea 2: Diagrama de Clases UML

Construye el diagrama de clases con al menos 4 clases. Incluye atributos, métodos, asociaciones y multiplicidades. Identifica relaciones de herencia o composición si aplica.

🎯 Tarea 3: Tarjetas CRC

Elabora una tarjeta CRC para cada clase identificada. Define sus responsabilidades (máximo 5 por clase) y sus colaboradores.

🎯 Tarea 4: Validación

Verifica que las responsabilidades están correctamente distribuidas entre las clases, que ninguna clase tenga más de 5 responsabilidades y que los colaboradores estén correctamente identificados.

ACTIVIDAD EVALUABLE

Entregable: Modelo de Clases de Tu Proyecto

📌 Instrucciones Generales

Aplica los conceptos del Tema 7 al sistema de información que está desarrollando tu equipo. Utiliza los casos de uso elaborados previamente como punto de partida para el análisis gramatical.

Análisis Gramatical de tus Casos de Uso

Toma la documentación de los casos de uso del Tema 6 y subraya sustantivos y verbos. Clasifica los sustantivos usando la taxonomía de clases y filtra los que no apliquen al sistema.

Diagrama de Clases UML

Construye el diagrama con mínimo 5 clases. Cada clase debe incluir nombre, atributos y métodos. Representa las asociaciones con su multiplicidad, y señala las relaciones de agregación, composición o herencia que existan.

Tarjetas CRC

Elabora una tarjeta CRC por cada clase del diagrama. Clasifica cada clase como entidad, frontera o colaborador. Define sus responsabilidades (máx. 5) y sus colaboradores.

Justificación y Validación

Incluye un breve párrafo justificando las decisiones de diseño: por qué se definieron esas clases, cómo se relacionan y cómo el modelo cubre los requerimientos identificados.

📅 Criterios de Evaluación

Diagrama de Clases correcto (35%) · Tarjetas CRC completas (30%) · Aplicación de la taxonomía (20%) · Justificación y coherencia (15%)

CIERRE

Puntos Clave del Tema 7

🧩 Paradigma OO

El modelado de clases hace una analogía del mundo real, base de los lenguajes de programación modernos.

📦 Clase y Objeto

La clase es el molde; el objeto es la instancia concreta. Cada objeto tiene atributos, métodos y estados.

🔗 Relaciones UML

Asociación, multiplicidad, agregación (◇), composición (◆) y herencia (△) describen cómo interactúan las clases.

🔍 Análisis Gramatical

Sustantivos → Clases. Verbos → Métodos. Es un proceso iterativo que refina el modelo.

🗂️ Tarjetas CRC

Inventario de clases con responsabilidades y colaboradores. Máximo 5 responsabilidades por clase.

🔄 Proceso Adaptable

El diagrama de clases se adapta durante el diseño. Surgirán más clases y asociaciones en fases posteriores.

🎯 Conclusión

Los diagramas de clases y las tarjetas CRC son herramientas muy útiles en la ingeniería de requerimientos: establecen claramente las partes del sistema, son sencillos de generar y proveen información valiosa para el equipo de desarrollo.

CHECKPOINT

Verificación de Competencias y Glosario

🎯 Asegúrate de poder:

✅ Competencia 1

Reconocer los conceptos fundamentales del diseño orientado a objetos para construir diagramas UML como parte de las especificaciones de un sistema.

✅ Competencia 2

Utilizar el paradigma del diseño orientado a objetos para generar diagramas de clases y tarjetas CRC que aclaren los requerimientos del cliente.

Glosario

Paradigma

Estructura de conceptos aplicados a un contexto que sirven para interpretar una realidad o una forma de ver el mundo.

Taxonomía

Clasificación de conceptos que están relacionados entre sí, organizada en categorías y subcategorías.

Superclase

Clase "padre" de la que una subclase hereda atributos y métodos. Por ejemplo: Vehículo es superclase de Automóvil, Camioneta y Autobús.

Análisis gramatical

Técnica propuesta por Pressman para identificar clases (sustantivos) y métodos (verbos) a partir de la descripción de casos de uso.

REFERENCIAS Y RECURSOS

Bibliografía y Recursos Adicionales

Bibliografía Obligatoria

[1] Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico (7ª ed.). México: McGraw Hill.
→ Ver sección 6.5: Modelado basado en clases
[2] Pohl, K. y Rupp, C. (2011). Requirements Engineering Fundamentals. EE. UU: Rocky Nook.
→ Ver Figura 6.8: Important modeling elements of class diagrams of UML

Lecturas Recomendadas

[3] Álvarez, H. (1997). Clases y objetos.
fpsalmon.usc.es/genp/doc/cursos/poo/clases.html
[4] Beck, K. y Cunningham, W. (1989). A Laboratory for Teaching Object-Oriented Thinking.
c2.com/doc/oopsla89/paper.html
[5] Börstler, J. y Schulte, C. (2005). Teaching OO Modelling with CRC-cards and Roleplaying Games.
citeseerx.ist.psu.edu
🔗 Herramientas para crear Diagramas de Clases

Lucidchart · draw.io · StarUML · Visual Paradigm · PlantUML — todas soportan notación UML estándar.

¡Excelente Trabajo!

Fin del Tema 7 · Modelos de Clases

TI13312 Ingeniería de Requerimientos de Software · Universidad Tecmilenio

Ahora puedes construir diagramas de clases y tarjetas CRC de forma profesional 🧩

1 / 19